@echo off
REM 本地部署脚本（Windows环境）
REM 用于在Windows开发环境中快速启动所有服务

echo ==========================================
echo 南昌旅游系统 - 本地部署
echo ==========================================
echo.

set PROJECT_DIR=%~dp0..
set BACKEND_DIR=%PROJECT_DIR%\backend
set FRONTEND_DIR=%PROJECT_DIR%\frontend

REM 检查Python
python --version >nul 2>&1
if errorlevel 1 (
    echo [错误] 未找到Python，请先安装Python3
    pause
    exit /b 1
)

REM 检查Node.js
node --version >nul 2>&1
if errorlevel 1 (
    echo [错误] 未找到Node.js，请先安装Node.js
    pause
    exit /b 1
)

echo [1/5] 检查后端环境...
cd /d %BACKEND_DIR%

REM 创建虚拟环境（如果不存在）
if not exist "venv" (
    echo 创建Python虚拟环境...
    python -m venv venv
)

REM 激活虚拟环境
call venv\Scripts\activate.bat

REM 检查并安装依赖
if not exist "venv\Lib\site-packages\django" (
    echo 安装Python依赖...
    pip install --upgrade pip
    pip install -r requirements.txt
) else (
    echo Python依赖已安装
)

REM 检查.env文件
if not exist ".env" (
    echo.
    echo [警告] .env文件不存在，正在创建...
    copy env.example.txt .env
    echo.
    echo 请编辑 .env 文件配置以下内容：
    echo   - SECRET_KEY（生成新的密钥）
    echo   - 数据库配置（DB_NAME, DB_USER, DB_PASSWORD等）
    echo   - Redis配置（REDIS_URL）
    echo   - 高德地图API密钥（AMAP_API_KEY）
    echo.
    pause
)

echo.
echo [2/5] 检查数据库连接...
python manage.py check --database default >nul 2>&1
if errorlevel 1 (
    echo [警告] 数据库连接失败，请检查数据库配置
    echo 确保MySQL已启动，并且数据库已创建
    echo.
)

echo.
echo [3/5] 运行数据库迁移...
python manage.py migrate --noinput

echo.
echo [4/5] 收集静态文件...
python manage.py collectstatic --noinput

echo.
echo [5/5] 检查前端环境...
cd /d %FRONTEND_DIR%

if not exist "node_modules" (
    echo 安装Node.js依赖...
    call npm install
) else (
    echo Node.js依赖已安装
)

echo.
echo ==========================================
echo 部署准备完成！
echo ==========================================
echo.
echo 下一步操作：
echo.
echo 1. 启动后端服务（新窗口）：
echo    cd backend
echo    venv\Scripts\activate
echo    python manage.py runserver
echo.
echo 2. 启动前端服务（新窗口）：
echo    cd frontend
echo    npm run serve
echo.
echo 3. 启动Redis（如果使用）：
echo    参考: docs/guides/Redis开启指南.md
echo.
echo 4. 启动Celery（如果使用）：
echo    参考: docs/guides/Celery启动指南.md
echo.
echo 访问地址：
echo   - 前端: http://localhost:8080
echo   - 后端API: http://localhost:8000/api/
echo.
pause

